/*
 * Copyright 2011 yingxinwu.g@gmail.com
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package xink.vpn;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.htjs.mobile.nyoa.R;
import xink.vpn.wrapper.VpnType;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class VpnTypeSelection extends Activity {

	/** Called when the activity is first created. */
	@Override
	public void onCreate(final Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.vpn_type_list);

		ListView listVpnTypes = (ListView) findViewById(R.id.listVpnTypes);

		List<Map<String, ?>> content = new ArrayList<Map<String, ?>>();
		VpnType[] vpnTypes = VpnType.values();
		for (VpnType vpnType : vpnTypes) {
			Map<String, String> row = new HashMap<String, String>();
			row.put("name",
					getString(R.string.add) + " "
							+ getString(vpnType.getNameRid()));
			row.put("desc", getString(vpnType.getDescRid()));
			content.add(row);
		}

		listVpnTypes.setAdapter(new SimpleAdapter(this, content,
				R.layout.vpn_type, new String[] { "name", "desc" }, new int[] {
						R.id.txtVpnType, R.id.txtVpnTypeDesc }));

		listVpnTypes.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(final AdapterView<?> parent,
					final View view, final int position, final long id) {
				VpnType vpnType = VpnType.values()[position];
				Log.i("xink", vpnType + " picked");

				Intent data = new Intent(VpnTypeSelection.this,
						VpnSettings.class);
				data.putExtra(Constants.KEY_VPN_TYPE, vpnType);
				setResult(RESULT_OK, data);
				finish();
			}
		});
	}

}
